/**
 * 
 */
package com.dao;

import java.util.ArrayList;
import java.util.List;

import com.model.Ret_prd_in;
import com.model.Ret_prd_info;
import com.rtnBean.logoff.NxOpeAll;

/**
 * @author C1011014
 * 
 */
public interface IRetPrdInfoDao extends GenericDao<Ret_prd_info, String> {

	Ret_prd_info setNxOpeInfo(Ret_prd_info prdInfo, NxOpeAll nxOpeAll);
	
	/**
	 * 根据BOX ID查询prd list,查询不到返回null
	 * @param boxId
	 * @return List<Ret_prd_info>
	 */
	List<Ret_prd_info> getShtListInfo(String boxId);

	/**
	 * 根据BOX ID查询prd list,查询不到返回null
	 * @param boxId
	 * @return List<Ret_prd_info>
	 */
	List<Ret_prd_info> getShtListInfoWithWo(String boxID, String wo_id);	
	/**
	 * 根据BOX ID查询prd list,查询不到返回null
	 * @param boxId
	 * @return
	 */
	List<Ret_prd_info> getShtListInfoWithLock(String boxId);	
	
	/**
	 * 根据BOX ID查询prd list,根据slot_no升序排列,直接返回List
	 * @param boxId
	 * @return List<Ret_prd_info>
	 */
	List<Ret_prd_info> getShtListInfoOrderBySlot(String boxId);
	
	/**
	 * 根据BOX ID查询prd list,根据制程开始时间升序排列,直接返回List
	 * @param boxId
	 * @return List<Ret_prd_info>
	 */
	List<Ret_prd_info> getShtListInfoOrderByP4Time(String boxId);
	
	/**
	 * 根据BOX ID查询prd list,根据slot_no降序排列,直接返回List
	 * @param boxId
	 * @return List<Ret_prd_info>
	 */
	List<Ret_prd_info> getShtListInfoOrderBySlotDesc(String boxId);
	
	int getOkPrdCnt(String boxId);
	
	int getNgPrdCnt(String boxId);
	
	int getScrpPrdCnt(String lot_id);
	
	/**
	 * 自动填充，获取下一个slot_no
	 * 
	 * @param ret_prd_in
	 * @return
	 */
	String getNxSlotNoLoop(String box_id);
	/**
	 * 
	 * @param ret_prd_in
	 * @param inputSlotNo
	 * @return true is has prd in this slot
	 */
	Boolean hasUserInputSlot(String box_id,String inputSlotNo);
	
	Boolean isChangeProcFlg(Ret_prd_info retPrdInfo);
 
	int getrlPrdCnt(String woId);

	boolean hasUserInputSlotInBox(String box_id, String slot_no);

}
